package dialect

// The trs80level2 dialect is used for TRS-80 Level II BASIC, used on
// the TRS-80 Model I, III, and IV microcomputers.
var trs80level2 = &data{
	Name: "trs80level2",
	Info: "TRS-80 Level II Basic (Model I/III/IV)",

	// Information sources:
	//   http://www.trs-80.com/trs80-info-level2.htm
	//   http://fileformats.archiveteam.org/wiki/TRS-80_Level_II_BASIC_tokenized_file
	Keywords: []*Keyword{
		{"+", []byte{0xcd}},
		{"-", []byte{0xce}},
		{"*", []byte{0xcf}},
		{"/", []byte{0xd0}},
		{"^", []byte{0xd1}},
		{"<", []byte{0xd4}},
		{"=", []byte{0xd5}},
		{">", []byte{0xd6}},
		{"'", []byte{0xfb}}, // Short form of REM, different encoding
		{"?", []byte{0xb2}}, // Short form of PRINT, same encoding
		{"ABS", []byte{0xd9}},
		{"AND", []byte{0xd2}},
		{"ASC", []byte{0xf6}},
		{"ATN", []byte{0xe4}},
		{"AUTO", []byte{0xb7}},
		{"CDBL", []byte{0xf1}},
		{"CHR$", []byte{0xf7}},
		{"CINT", []byte{0xef}},
		{"CLEAR", []byte{0xb8}},
		{"CLOAD", []byte{0xb9}},
		{"CLOAD?", []byte{0xb9, '?'}},
		{"CLOSE", []byte{0xa6}}, // Reserved for Level III / Disk BASIC
		{"CLS", []byte{0x84}},
		{"CMD", []byte{0x85}}, // Reserved for Level III / Disk BASIC
		{"CONT", []byte{0xb3}},
		{"COS", []byte{0xe1}},
		{"CSAVE", []byte{0xba}},
		{"CSNG", []byte{0xe0}},
		{"CVD", []byte{0xe8}}, // Reserved for Level III / Disk BASIC
		{"CVI", []byte{0xe6}}, // Reserved for Level III / Disk BASIC
		{"CVS", []byte{0xe7}}, // Reserved for Level III / Disk BASIC
		{"DATA", []byte{0x88}},
		{"DEF", []byte{0xb0}}, // Reserved for Level III / Disk BASIC
		{"DEFDBL", []byte{0x9b}},
		{"DEFINT", []byte{0x99}},
		{"DEFSNG", []byte{0x9a}},
		{"DEFSTR", []byte{0x98}},
		{"DELETE", []byte{0xb6}},
		{"DIM", []byte{0x8a}},
		{"EDIT", []byte{0x9d}},
		{"ELSE", []byte{0x95}},
		{"END", []byte{0x80}},
		{"EOF", []byte{0xe9}}, // Reserved for Level III / Disk BASIC
		{"ERL", []byte{0xc2}},
		{"ERR", []byte{0xc3}},
		{"ERROR", []byte{0x9e}},
		{"EXP", []byte{0xe0}},
		{"FIELD", []byte{0xa3}}, // Reserved for Level III / Disk BASIC
		{"FIX", []byte{0xf2}},
		{"FN", []byte{0xbe}}, // Reserved for Level III / Disk BASIC
		{"FOR", []byte{0x81}},
		{"FRE", []byte{0xda}},
		{"GET", []byte{0xa4}}, // Reserved for Level III / Disk BASIC
		{"GOSUB", []byte{0x91}},
		{"GOTO", []byte{0x8d}},
		{"IF", []byte{0x8f}},
		{"INKEY$", []byte{0xc9}},
		{"INP", []byte{0xdb}},
		{"INPUT", []byte{0x89}},
		{"INSTR", []byte{0xc5}}, // Reserved for Level III / Disk BASIC
		{"INT", []byte{0xd8}},
		{"KILL", []byte{0xaa}}, // Reserved for Level III / Disk BASIC
		{"LEFT$", []byte{0xf8}},
		{"LEN", []byte{0xf3}},
		{"LET", []byte{0x8c}},
		{"LINE", []byte{0x9c}}, // Reserved for Level III / Disk BASIC
		{"LIST", []byte{0xb4}},
		{"LLIST", []byte{0xb5}},
		{"LOAD", []byte{0xa7}}, // Reserved for Level III / Disk BASIC
		{"LOC", []byte{0xea}},  // Reserved for Level III / Disk BASIC
		{"LOF", []byte{0xeb}},  // Reserved for Level III / Disk BASIC
		{"LOG", []byte{0xdf}},
		{"LPRINT", []byte{0xaf}},
		{"LSET", []byte{0xab}}, // Reserved for Level III / Disk BASIC
		{"MEM", []byte{0xc8}},
		{"MERGE", []byte{0xa8}}, // Reserved for Level III / Disk BASIC
		{"MID$", []byte{0xfa}},
		{"MKD$", []byte{0xee}}, // Reserved for Level III / Disk BASIC
		{"MKI$", []byte{0xec}}, // Reserved for Level III / Disk BASIC
		{"MKS$", []byte{0xed}}, // Reserved for Level III / Disk BASIC
		{"NAME", []byte{0xa9}}, // Reserved for Level III / Disk BASIC
		{"NEW", []byte{0xbb}},
		{"NEXT", []byte{0x87}},
		{"NOT", []byte{0xcb}},
		{"ON", []byte{0xa1}},
		{"OPEN", []byte{0xa2}}, // Reserved for Level III / Disk BASIC
		{"OR", []byte{0xd3}},
		{"OUT", []byte{0xa0}},
		{"PEEK", []byte{0xe5}},
		{"POINT", []byte{0xc6}},
		{"POKE", []byte{0xb1}},
		{"POS", []byte{0xdc}},
		{"PRINT", []byte{0xb2}},
		{"PRINT@", []byte{0xb2, '@'}},
		{"PUT", []byte{0xa5}}, // Reserved for Level III / Disk BASIC
		{"RANDOM", []byte{0x86}},
		{"READ", []byte{0x8b}},
		{"REM", []byte{0x93}},
		{"RESET", []byte{0x82}},
		{"RESTORE", []byte{0x90}},
		{"RESUME", []byte{0x9f}},
		{"RETURN", []byte{0x92}},
		{"RIGHT$", []byte{0xf9}},
		{"RND", []byte{0xde}},
		{"RSET", []byte{0xac}}, // Reserved for Level III / Disk BASIC
		{"RUN", []byte{0x8e}},
		{"SAVE", []byte{0xad}}, // Reserved for Level III / Disk BASIC
		{"SET", []byte{0x83}},
		{"SGN", []byte{0xd7}},
		{"SIN", []byte{0xe2}},
		{"SQR", []byte{0xdd}},
		{"STEP", []byte{0xcc}},
		{"STOP", []byte{0x94}},
		{"STR$", []byte{0xf4}},
		{"STRING$", []byte{0xc4}},
		{"SYSTEM", []byte{0xae}},
		{"TAB", []byte{0xbc}},
		{"TAN", []byte{0xe3}},
		{"THEN", []byte{0xca}},
		{"TIME$", []byte{0xc7}}, // Reserved for Level III / Disk BASIC
		{"TO", []byte{0xbd}},
		{"TROFF", []byte{0x97}},
		{"TRON", []byte{0x96}},
		{"USING", []byte{0xbf}},
		{"USR", []byte{0xc1}},
		{"VAL", []byte{0xf5}},
		{"VARPTR", []byte{0xc0}},
	},
}
